TypeScriptではじめるChatGPT API:入門から一歩進んだテクニックまで
chatgptコマンド、またはスクリプト実行
ChatGPT API
messagesを投げるとmessageが返ってくる
3つのrole
"user"が自分の発言
"assitant"が ChatGPT の発言
"system"というのは ChatGPT に全体的な指示を出したりするのに使えるもの
ChatGPT は記憶を持たないので、対話をするにはリクエストに"user"の発言だけではなく"assistant"との対話の履歴を含める必要がある
messages以外のパラメタ
model
この記事では"gpt-3.5-turbo"すなわち ChatGPT
temperature
値を大きくすると ChatGPT の発言がより多様でランダムな感じになります
max_tokens
ChatGPT が返す最大トークン数です。API はトークン数に基づいて課金される
トークン
ChatGPT が内部で文字列を分割するのに使っている単位
文字とも単語とも異なります。現状、日本語の場合は1文字が1トークンよりちょっと多いくらい
ChatGPT は入出力合わせて一度に約 4000 トークンしか扱えないという制限があります
simple-chat(キャラクター AI)
summary-and-comment
要約
getSummary
userプロンプトのみ
以下の文章を200字程度で要約してください。
(IMO:設定がいらないからsystemプロンプトはなしということ?)
コメント
getComment
systemプロンプト + userプロンプト
設定を伝える
あなたは(略)イメージキャラクターのumaです。
語尾には必ず「ウマ」を付けて喋ります。
文章と要約は埋まる
「感想:」に続けて出力させる
classify
summary-long-text(再帰的要約)
長い文章の要約
文章を分割して再帰的に要約させるというのがひとつのやり方です。
固定長のチャンクに分割させる実装
chunkStringはテキストを分割した配列を返している
IMO:テキストをA/B/Cに
実際はAの要約、Bの要約、Cの要約をまとめて要約している?(map)
qa-with-search
create-embedding
qa-with-embedding